;#########################################################################
;��������� GetBase                                                      
;����� ���� ������������ �����, ���� ���� ����� ���-�� ������ ����
;����: � esi - ����� ������ ����� � ������
;�����:� eax - ���� PE-�����
;�������:������ ��������� ������������ � �������������� ������� � ������
;#########################################################################
GetBase proc
LOCAL Base:DWORD;����� �� �������� �������� �� ��������������
        push esi;��������� ��� ��������, ������� ������������
        push ecx

        pushf;��������� ������� ������
        and esi,0FFFF0000H;������������� ��������� ������
        mov ecx,6;������� �������

NextPage:;�������� ��������� ��������
        call ValidPE
        .IF eax==1
                mov Base,esi
                popf
                pop ecx
                pop esi
                mov eax,Base
                ret
        .ENDIF
        sub esi,10000H
        loop NextPage

        popf;��������������� �������� ������
        pop ecx
        pop esi;��������������� �������� ���������
        mov eax,FALSE;�� ����� ���� :(
        ret
GetBase endp
;#########################################################################
;����� ��������� GetBase
;#########################################################################